package com.employment.dao;

import com.mybatisflex.core.BaseMapper;
import com.employment.entity.ChatTemplate;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 常用回复模板Mapper接口
 * 
 * @author Employment System
 * @since 1.0.0
 */
@Mapper
public interface ChatTemplateMapper extends BaseMapper<ChatTemplate> {

    /**
     * 查询用户的模板列表
     *
     * @param userId   用户ID
     * @param category 分类
     * @return 模板列表
     */
    List<ChatTemplate> selectByUserId(@Param("userId") Long userId,
                                     @Param("category") String category);

    /**
     * 查询公开模板列表
     *
     * @param category 分类
     * @return 模板列表
     */
    List<ChatTemplate> selectPublicTemplates(@Param("category") String category);

    /**
     * 增加模板使用次数
     *
     * @param templateId 模板ID
     * @return 更新结果
     */
    int increaseUsageCount(@Param("templateId") Long templateId);

    /**
     * 查询热门模板
     *
     * @param category 分类
     * @param limit    限制数量
     * @return 模板列表
     */
    List<ChatTemplate> selectPopularTemplates(@Param("category") String category,
                                             @Param("limit") Integer limit);

    /**
     * 搜索模板
     *
     * @param keyword 关键词
     * @param userId  用户ID
     * @return 模板列表
     */
    List<ChatTemplate> searchTemplates(@Param("keyword") String keyword,
                                      @Param("userId") Long userId);
}